Tu je sklop osnovnih nalog za spoznavanje funkcij v Pythonu
Sestavite funkciji, ki vrneta zahtevani sredini dveh števil.
Zapišite funkcijo aritmeticna(a, b)
, ki za števili
def aritmeticna (a, b): '''Funkcija vrne aritmetično sredino števil a in b.''' return (a + b)/2
Zapišite funkcijo geometricna(a, b)
, ki za števili
Namig - oglej si dokumentacijo in zgled
import math # da bomo lahko uporabili vgrajeno funkcijo za korenjenje def geometricna (a, b): '''Funkcija vrne geometrično sredino števil a in b.''' return math.sqrt(a*b)
Dano imamo decimalno število. Sestavite funkcijo desetinke(x)
, ki vrne
desetinke števila x
.
Na primer:
>>> desetinke(3.7)
7
>>> desetinke(6.127)
1
def desetinke(x): '''vrne desetinke števila x''' stevilo = 10 * abs(x) # premik decimalne pike v desno. Da ne bo kaj čudnega, delamo z abs celiDel = int(stevilo) deset = celiDel % 10 # desetinke so enice novega števila return deset
Dano imamo decimalno število. Funkcija celiDecimalni(x)
naj bi vrnila
celi in prvi dve decimalki števila x
tako, kot kažejo primeri
Na primer:
>>> celiDecimalni(3.7)
(3, 70)
>>> celiDecimalni(-6.127)
(-6, 12)
>>> celiDecimalni(12.0127)
(12, 1)
A funkcija
def celiDecimalni(x):
'''vrne celi in decimalni del števila x'''
celiDel = int(x)
decimalni = 100 * (x - celiDel)
return celiDel, decimalniDel
ne dela vedno tako. Poišči in odpravi napake!
def celiDecimalni(x): '''vrne celi in decimalni del števila x''' celiDel = int(x) x = abs(x) decimalniDel = int((x - abs(celiDel))*100) return celiDel, decimalniDel
V posodo, katere dno ima obliko kvadrata, nalijemo vodo vse do roba.
Če vanjo vržemo kroglo z radijem 5cm, nam funkcija
import math
def kolikoOstalo(širina, višina):
'''Na tri decimalke natančno vrne, koliko litrov vode je ostalo v posodi'''
volumenKrogle = 4/ 3 * math.pi * 0.125
volumenPosode = širina ** 2 * višina / 1000
ostanekVode = round(volumenPosode - volumenKrogle, 3)
return ostanekVode
vrne, koliko litrov vode ostane v posodi (vse mere so podane v cm). Spremeni to funkcijo v kolikoOstalo(širina, višina, polmer)
,
ki izračuna koliko litrov vode je ostalo v posodi, če vanjo damo kroglo s polmerom polmer
.
import math def kolikoOstalo(širina, višina, polmer): '''Na tri decimalke natančno vrne, koliko litrov vode je ostalo v posodi''' volumenKrogle = 4/ 3 * math.pi * (polmer / 10)**3 volumenPosode = širina ** 2 * višina / 1000 ostanekVode = round(volumenPosode - volumenKrogle, 3) return ostanekVode
V posodo sedaj položimo stožec, katerega premer je enak širini posode, višina
pa enaka globini posode.
Napišite funkcijo kolikoOstaloSt(širina, višina, n)
, ki izračuna koliko litrov
vode je ostalo v posodi ter vrne rezultat, zaokrožen na n decimalk.
Funkcija sprejme širino in višino posode v cm.
import math def kolikoOstaloSt(širina, višina, n): '''Na n decimalk natančno vrne, koliko litrov vode je ostalo v posodi''' volumenStozca = 1 / 3 * math.pi * (širina / 2) ** 2 * višina / 1000 volumenPosode = širina ** 2 * višina / 1000 ostanekVode = round(volumenPosode - volumenStozca, n) return ostanekVode
Radi bi sestavili niz, ki ga sestavlja n enakih znakov. Zato sestavi funkcijo
kopija
, ki vrne niz, ki ga sestavlja n kopij znaka.
Če torej napišemo program:
print(kopija('X', 5))
črta = kopija('-', 3)
print(črta + " : " + str(len(črta)))
bo izpis:
XXXXX
--- : 3
def kopija(znak, n): '''Vrne niz, ki ga sestavlja n kopij znaka n''' niz = znak * n return niz
Sestavi funkcijo črkaH(n, znak)
, ki za podatek n izpiše na zaslon veliko
črko H, visoko 2n + 1 znakov in široko n + 2 znakov.
Primer:
>>>črkaH(2, 'o')
o o
o o
oooo
o o
o o
def črkaH(n, znak): '''Izpišimo črko H''' # zgornji del vrstica = znak + ' ' * n + znak + '\n' print(n * vrstica, end = '') # na koncu smo že skočili v novo vrsto # srednji del print(znak * (n + 2)) # spodnji del vrstica = znak + ' ' * n + znak + '\n' print(n * vrstica, end = '') # na koncu smo že skočili v novo vrsto
Pri varčevanju na obroke na začetku vplačamo nek znesek, nato pa vsak mesec doplačujemo mesečne obroke. Zaradi enostavnosti predpostavimo, da so vplačila vedno prvi dan v mesecu, vrednost varčevalnega računa pa se vedno računa ob koncu meseca. Denar, ki ga imamo na varčevalnem računu, se obrestuje po fiksni obrestni meri.
V bančništvu pogosto navajamo letno obrestno mero, obrestujemo pa mesečno. Zato je pred računanjem potrebno obrestno mero primerno spremeniti.
Napišite funkcijo mesecna_obrestna_mera(letna_obrestna_mera)
, ki kot
parameter sprejme letno obrestno mero v odstotkih, vrne pa ustrezno
mesečno obrestno mero kot decimalno število
(torej letni obrestni meri 12% ustreza mesečna obrestna mera 0.01).
def mesecna_obrestna_mera(r): '''Letna obrestna mera v obliki mesečne decimalne oblike.''' return r / 1200
Pri enostavnem obrestovanju s fiksno letno obrestno mero
Sestavite funkcijo
enostavno_obrestovanje(polog, letna_obrestna_mera, st_mesecev)
,
ki za enostavno obrestovanju izračuna vrednost denarja na računu pri danem
začetnem pologu, letni obrestni meri in številu mesecev.
Primeri:
>>> enostavno_obrestovanje(100, 10, 0)
100.0
>>> enostavno_obrestovanje(100, 12, 1)
101.0
>>> enostavno_obrestovanje(100, 10, 12)
110
def enostavno_obrestovanje(polog, letna_obrestna_mera, st_mesecev): '''Vrednost obrestovanega denarja pri enostavnem obrestovanju.''' return polog * (1 + mesecna_obrestna_mera(letna_obrestna_mera) * st_mesecev)
Pri obrestno obrestnem računu s fiksno letno obrestno mero
Sestavite funkcijo
obrestno_obrestovanje(polog, letna_obrestna_mera, st_mesecev)
,
ki izračuna vrednost denarja na računu pri danem začetnem pologu, letni
obrestni meri in številu mesecev, pri čemer se obresti računajo po obrestno
obrestnem računu.
Primeri:
>>> obrestno_obrestovanje(100, 10, 0)
100.0
>>> obrestno_obrestovanje(100, 10, 1)
100.83333333333333
>>> obrestno_obrestovanje(100, 12, 12)
112.68250301319698
def obrestno_obrestovanje(polog, letna_obrestna_mera, st_mesecev): '''Vrednost obrestovanega denarja pri obrestno obrestnem obrestovanju.''' return polog * (1 + mesecna_obrestna_mera(letna_obrestna_mera)) ** st_mesecev